import currentPosition from '@/assets/map/current-position.png'

export function useCommon({ AMap, mapInstance, satellite }) {
  // 切换地图类型
  const changeMapType = (type) => {
    if (type === 2) {
      mapInstance.value.addLayer(satellite.value)
    }
    else {
      mapInstance.value.removeLayer(satellite.value)
    }
  }

  const locateCurrentPosition = () => {
    // 初始化定位插件
    const geolocation = new AMap.value.Geolocation({
      enableHighAccuracy: true, // 是否使用高精度定位
      timeout: 10000, // 超时时间
      showButton: true, // 是否显示定位按钮
      position: 'RB', // 定位按钮位置
      offset: [10, 20], // 定位按钮距离对应角落的距离
      showMarker: true, // 定位成功后在定位到的位置显示点标记
      showCircle: false, // 定位成功后用圆圈表示定位精度范围
      markerOptions: { // 自定义定位点样式，同Marker的Options
        offset: new AMap.value.Pixel(-15, -19),
        content: `<img src="${currentPosition}" style="width:30px;height:38px"/>`,
      },
    })

    mapInstance.value.addControl(geolocation)

    geolocation.getCurrentPosition((status, result) => {
      console.log(result, status, '定位成功')
      mapInstance.value.setZoom(17, false, 500)
    })
  }

  // 重置地图视野
  const locateCurrent = () => {
    mapInstance.value.setFitView(undefined, false, [50, 50, 50, 50], 20)
  }

  return {
    changeMapType,
    locateCurrentPosition,
  }
}
